// This file is part of OpenMeca, an easy software to do mechanical simulation.
//
// Author(s)    :  - Damien ANDRE  <openmeca@gmail.com>
//
// Copyright (C) 2012 Damien ANDRE
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

#include <QApplication>
#include <iostream>

#include "OpenMeca/Gui/WidgetString.hpp"
#include "OpenMeca/Util/Dimension.hpp"
#include "OpenMeca/Util/Unit.hpp"

namespace OpenMeca
{
  namespace Gui
  {
    WidgetString::WidgetString(QWidget* parent)
      :QWidget(parent),
       WidgetInterface<std::string>(*parent)
    {
      Ui::WidgetString::setupUi(this);
    }

    WidgetString::~WidgetString()
    {
    }


     void 
     WidgetString::Init()
    {
      const std::string value =  WidgetInterface<std::string>::GetValue();
      lineEdit_->setText(value.c_str());
    }
    

    void 
    WidgetString::SetLabel(const QString& str)
    {
      label_->setText(str);
    }
   
    bool
    WidgetString::Check()
    {
      if (lineEdit_->text().isEmpty())
	{
	  QPalette p = lineEdit_->palette();
	  p.setColor(QPalette::Base, Qt::red);
	  lineEdit_->setPalette(p);
	  return false;
	}
      else
	{
	  lineEdit_->setPalette(QApplication::palette());
	  WidgetInterface<std::string>::GetCopy() = lineEdit_->text().toStdString();
	}
      return true;
    }

  }
}


